package com.itheima.d2_object;

//学生类
public class Student{
    private String name;
    private int age;

    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    //1.按照需求重写equals方法
    @Override
    public boolean equals(Object o) {
        //1.1 先判断两个对象的地址值，如果两个对象地址一样，那数据也肯定一样，直接返回true
        if (this == o) return true;

        //1.2 如果代码执行到这，说明俩对象地址值不一样
        //如果其中一个对象是null，或者两个对象所属的类不一样，直接返回false
        if (o == null || getClass() != o.getClass()) return false;

        //1.3 如果代码执行到这，说明比较的对象不为null，而且两个对象属于同一个类
        //强转：这样可以让传入的对象使用Student类的特有功能！
        Student student = (Student) o;

        //1.4 比较两个对象的属性是否一样，一样返回true，不一样返回false
        if (age != student.age) return false;
        return name != null ? name.equals(student.name) : student.name == null;
    }

    //2.按需求重写toString()方法
    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
